package net.objectlab.kit.datecalc.joda; import java.util.Calendar; import java.util.HashSet; import java.util.Set; import junit.framework.TestCase; import net.objectlab.kit.datecalc.common.DefaultHolidayCalendar; import net.objectlab.kit.datecalc.common.HolidayCalendar; import org.joda.time.LocalDate; import org.joda.time.format.DateTimeFormat; import org.joda.time.format.DateTimeFormatter; public class DefaultHolidayCalendarTest extends TestCase { public void testGetHolidays() { final Set<LocalDate> holidays = new HashSet<LocalDate>(); holidays.add(new LocalDate("2009-04-22")); holidays.add(new LocalDate("2010-04-22")); final HolidayCalendar<LocalDate> holidayCalendar = new DefaultHolidayCalendar<LocalDate>(holidays, new LocalDate("2009-01-01"), new LocalDate("2009-12-01")); assertTrue(holidayCalendar.getHolidays().size() == 2); } public void testIsHoliday() { final Set<LocalDate> holidays = new HashSet<LocalDate>(); final LocalDate holiday = new LocalDate("2009-04-22"); holidays.add(holiday); final HolidayCalendar<LocalDate> holidayCalendar = new DefaultHolidayCalendar<LocalDate>(holidays, new LocalDate("2009-01-01"), new LocalDate("2009-12-01")); final LocalDate testHoliday = new LocalDate(2009, 4, 22); assertTrue(holidayCalendar.isHoliday(testHoliday)); assertFalse(holidayCalendar.isHoliday(new LocalDate(2009, 4, 21))); } /** * See JODA issue: * http://joda-interest.219941.n2.nabble.com/LocalDate-equals-method-bug-td7572429.html */ public void testForDateWithDifferentChronologies() { final LocalDate localDate2 = new LocalDate(2012, 6, 21); final Set<LocalDate> s = new HashSet<LocalDate>(); s.add(localDate2); final HolidayCalendar<LocalDate> holidayCalendar = new DefaultHolidayCalendar<LocalDate>(s, new LocalDate("2009-01-01"), new LocalDate( "2009-12-01")); assertTrue("Date with Chronology " + localDate2.getChronology(), holidayCalendar.isHoliday(localDate2)); final DateTimeFormatter dateTimeFormat = DateTimeFormat.forPattern("yyyyMMdd HH:mm"); final Calendar calendar = dateTimeFormat.parseDateTime("20120621 09:00").toCalendar(null); final LocalDate localDate1 = new LocalDate(calendar); assertTrue("Date with Chronology " + localDate1.getChronology(), holidayCalendar.isHoliday(localDate1)); } }